
export function randomKey() {
  return (Math.floor(Math.random() * 0xfffff)).toString(16)
}

// 题目结构
export function questionObj(displaySerialNumber = 0) {
  return {
    questionTitle: '',
    questionType: '0', // 题目类型：0单选1多选2填空3章节
    scoreType: 0, // 得分类型：0选中扣分1选中得分
    isScore: 0, // 是否评分题：0否 1是
    totalScore: '',
    questionOptionDTOList: [],
    displaySerialNumber,
    id: ''
  }
}
// 选项结构
export function optionObj(questionId) {
  return {
    id: '',
    enterContent: '', // 输入内容
    isEnter: 0, // 是否可输入
    optionContent: '', // 选项内容
    questionId: questionId || '', // 所属题目
    scoreValue: '' // 分值
  }
}

// 序号
// type number类型-数字序号，任意汉字-汉字序号，任意字母-字母序号
export function sortToChar(type = 1) {
  if (/^[a-zA-Z]+$/.test(type)) {
    const startCode = /^[a-z]+$/.test(type) ? 97 : 65
    return function(sort) {
      let str = ''
      const code = sort.toString(26).split('').map(e => parseInt(e, 26))
      code.forEach((e, i) => {
        if (i < code.length - 1 && e > 0) { e-- } // FIX: 不会出现z开始的
        str += String.fromCharCode(startCode + e)
      })
      return str
      // return String.fromCharCode(startCode + sort)
    }
  } else if (/^[\u4e00-\u9fa5]+$/.test(type)) {
    const charList = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九']
    const unitsList = ['十', '百', '千', '万']
    return function(sort) {
      const sortCharList = (sort + 1).toString().split('')
      const strList = []
      for (let i = 0; i < sortCharList.length; i++) {
        strList.push(charList[+sortCharList[i]])
      }
      const str = []
      strList.reverse().forEach((e, i) => {
        str.push(e)
        if (i + 1 < strList.length) {
          str.push(unitsList[i])
        }
      })
      return str.reverse().join('')
    }
  } else {
    return function(sort) {
      return (sort + 1).toString()
    }
  }
}

// 章节序号
export const charNum = sortToChar(1)
export const charA = sortToChar('A')
export const chara = sortToChar('a')
export const charCn = sortToChar('一')

